最近進了一個公會群,發現當有新成員進來時管理員還需要問他們ID才能把他們邀進遊戲裡的工會
新成員進來時管理員問ID這步驟可以靠on_member_join
函式來解決,這函式意思是當有新成員進頻道時你的chatbot要做什麼回應
程式碼如下:
import discord
import requests
import pandas as pd
import pickle
import difflib
from dotenv import load_dotenv
if __name__ == '__main__':
#讀取Token
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
embed = discord.Embed()
#新成員加入
@client.event
#當有訊息時
async def on_member_join(member):
guild = client.get_guild(GUILD_ID)
for channel in guild.channels:
if channel.name == '一般':#<<記得改"一般"
await channel.send(f"<@{member.id}> 你好呀:sunglasses: 請輸入你的遊戲ID,管理員看到就會把你加進公會~")
client.run(TOKEN) #TOKEN 在剛剛 Discord Developer 那邊「BOT」頁面裡面
<@{member.id}>
後面member.id是指新成員的暱稱
channel.name
的值是新成員進來時所在的頻道,一般來說頻道名稱是general
,這邊可能要注意一下
呈現畫面:
API其他函式可以看官方文檔
這邊也推薦可以進discrd的官方chatbotapi群詢問問題,每個語言都有專屬的子頻道,不用怕訊息雜亂